home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / pc_board / pbank20a.zip / BANK.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-05-28  |  6KB  |  240 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     String   STRING002
  26.     String   STRING003
  27.     String   TSTRING004(4)
  28.     String   STRING005
  29.  
  30. ;------------------------------------------------------------------------------
  31.  
  32.     :LABEL001
  33.     STRING002 = ""
  34.     GetUser
  35.     If (Left(U_Notes(4), 4) <> "BANK") Then
  36.         TSTRING004(1) = "BANK"
  37.         TSTRING004(2) = "TIME"
  38.         TSTRING004(3) = 0
  39.     Else
  40.         Tokenize U_Notes(4)
  41.         STRING003 = 1
  42.         GetToken TSTRING004(STRING003)
  43.         While (TSTRING004(STRING003) <> "") Do
  44.             STRING003 = STRING003 + 1
  45.             GetToken TSTRING004(STRING003)
  46.         EndWhile
  47.     Endif
  48.     INTEGER001 = 30
  49.     INTEGER002 = 15
  50.     INTEGER003 = TSTRING004(3)
  51.     If (INTEGER003 > INTEGER002) Then
  52.         INTEGER004 = INTEGER002
  53.     Else
  54.         INTEGER004 = INTEGER003
  55.     Endif
  56.     PrintLn "@CLS@@X07"
  57.     PrintLn "@X07"
  58.     PrintLn "@X07"
  59.     PrintLn "@X07  @X77                     @X70┌─────────────────────────@X7F┐                         @X07"
  60.     PrintLn "@X0F @X08█@X78                     @X70│   @X7AJerusalem Time Bank   @X7F│                         @X07"
  61.     PrintLn "@X0F @X08█@X78                     @X70└@X7F─────────────────────────┘                         @X07"
  62.     PrintLn "@X0F @X08█@X78     @X70┌─────────────────────@X7F┐   @X70┌─────────────────────────────────────@X7F┐   @X07"
  63.     PrintLn "@X0F @X08█@X78     @X70│  @X7BD@X78)@X71eposit time      @X7F│   @X70│ @X7BIn your Account@X78: @X7E    @X78               @X7F│   @X07"
  64.     PrintLn "@X0F @X08█@X78     @X70│  @X7BW@X78)@X71ithdraw time     @X7F│   @X70│ @X79Maximum Bank Balance@X78: @X7E    @X78          @X7F│   @X07"
  65.     PrintLn "@X0F @X08█@X78     @X70│  @X7BH@X78)@X71elp!             @X7F│   @X70│                                     @X7F│   @X07"
  66.     PrintLn "@X0F @X08█@X78     @X70│                     @X7F│   @X70│ @X7BAvailable for Withdrawal@X78: @X7E    @X78      @X7F│   @X07"
  67.     PrintLn "@X0F @X08█@X78     @X70│  @X7BQ@X78)@X74uit to @X79J@X74B@X7AB@X78S      @X7F│   @X70│ @X79Maximum Withdrawal P/Day@X78: @X7E    @X78      @X7F│   @X07"
  68.     PrintLn "@X0F @X08█@X78     @X70└@X7F─────────────────────┘   @X70└@X7F─────────────────────────────────────┘   @X07"
  69.     PrintLn "@X0F @X08█@X78                                                                         @X07"
  70.     PrintLn "@X08 █@X78                                                                         @X07"
  71.     PrintLn "@X08 █@X78                                                                         @X07"
  72.     PrintLn "@X08 ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀@X07"
  73.     AnsiPos 53, 8
  74.     Print "@X75"
  75.     Print INTEGER003
  76.     PrintLn " @X78Min@X07"
  77.     AnsiPos 58, 9
  78.     Print "@X75"
  79.     Print INTEGER001
  80.     PrintLn " @X78Min@X07"
  81.     AnsiPos 62, 11
  82.     Print "@X75"
  83.     Print INTEGER004
  84.     PrintLn " @X78Min@X07"
  85.     AnsiPos 62, 12
  86.     Print "@X75"
  87.     Print INTEGER002
  88.     PrintLn " @X78Min@X07"
  89.     AnsiPos 0, 19
  90.     InputStr "(@X0C@TIMELEFT@ @X0Emin. left) Jerusalem BBS Time Bank ", STRING002, 14, 1, Mask_AlNum(), 2 + 4 + 8 + 128 + 32
  91.     If (STRING002 == "D") Gosub LABEL002
  92.     If (STRING002 == "W") Gosub LABEL003
  93.     If (STRING002 == "H") Gosub LABEL009
  94.     If (STRING002 == "Q") Goto LABEL010
  95.     If (STRING002 == "") Goto LABEL010
  96.     Goto LABEL001
  97.     :LABEL002
  98.     If (INTEGER003 == INTEGER001) Then
  99.         Goto LABEL004
  100.     Endif
  101.     INTEGER005 = INTEGER001 - INTEGER003
  102.     If (INTEGER005 > MinLeft()) Then
  103.         INTEGER005 = MinLeft() - 2
  104.     Endif
  105.     InputStr "Enter the Amount to Deposit :", INTEGER005, 14, 2, Mask_Num(), 2 + 4 + 8 + 128 + 32
  106.     If (INTEGER005 > INTEGER001 - INTEGER003) Then
  107.         Goto LABEL005
  108.     Endif
  109.     If (INTEGER005 > MinLeft()) Then
  110.         Goto LABEL006
  111.     Endif
  112.     TSTRING004(3) = TSTRING004(3) + INTEGER005
  113.     U_Notes(4) = TSTRING004(1) + " " + TSTRING004(2) + " " + TSTRING004(3)
  114.     STRING005 = INTEGER005
  115.     PrintLn "@X0CDepositing @X0E" + STRING005 + "@X0E Min@X0C to Your Account"
  116.     Log "Deposited: " + STRING005 + " Min", 0
  117.     PutUser
  118.     AdjTime -INTEGER005
  119.     Goto LABEL010
  120.     :LABEL003
  121.     If (INTEGER003 == 0) Then
  122.         Goto LABEL008
  123.     Endif
  124.     If (INTEGER004 == 0) Then
  125.         Goto LABEL007
  126.     Endif
  127.     If (INTEGER003 > INTEGER002) Then
  128.         INTEGER006 = INTEGER002
  129.     Endif
  130.     InputStr "Enter the Amount to Withdraw :", INTEGER006, 14, 2, Mask_Num(), 2 + 4 + 8 + 128 + 32
  131.     If (INTEGER006 > INTEGER002) Then
  132.         Goto LABEL007
  133.     Endif
  134.     If (INTEGER006 > INTEGER003) Then
  135.         Goto LABEL007
  136.     Endif
  137.     TSTRING004(3) = TSTRING004(3) - INTEGER006
  138.     U_Notes(4) = TSTRING004(1) + " " + TSTRING004(2) + " " + TSTRING004(3)
  139.     STRING005 = INTEGER006
  140.     Print "@X0CWithdrawing @X0E " + STRING005 + " Min@X0C from Your Account"
  141.     Log "Withdrawed: " + STRING005 + " Min", 0
  142.     PutUser
  143.     AdjTime INTEGER006
  144.     Goto LABEL010
  145.     :LABEL004
  146.     Log "Attempted to Deposit When the bank was at Maximum", 0
  147.     PrintLn "@X0CYour Bank Balace is at its Maximum!@X07@BEEP@"
  148.     Goto LABEL010
  149.     :LABEL005
  150.     STRING005 = INTEGER005
  151.     Log "Attempted to Deposit too much: " + STRING005, 0
  152.     PrintLn "@X0CThe Maximum You Can Deposit is:@X0B" + STRING005 + "Min @X07@BEEP@"
  153.     Goto LABEL010
  154.     :LABEL006
  155.     STRING005 = INTEGER005
  156.     Log "Attempted to Deposit more time than remaining: ", STRING005
  157.     STRING005 = MinLeft()
  158.     PrintLn "@X0CThe Maximum You Can Deposit is:@X0B " + STRING005 + " Min @X07@BEEP@"
  159.     Goto LABEL010
  160.     :LABEL007
  161.     STRING005 = INTEGER006
  162.     Log "Attempted to Withdraw too much! :" + STRING005, 0
  163.     STRING005 = INTEGER002
  164.     Print "@X0CThe Maximum You Can Withdraw is @X0B" + STRING005 + " Min @X07@BEEP@"
  165.     Goto LABEL010
  166.     :LABEL008
  167.     Log "Attempted to Withdraw : No Time in the Bank!", 0
  168.     Print "@X0CYou Must deposit time in the Bank in order to Withdraw@X07@BEEP@"
  169.     Goto LABEL010
  170.     :LABEL009
  171.     If (Exist(PPEPath() + "H_BANK")) DispFile PPEPath() + "H_BANK", 4 + 2 + 1
  172.     Goto LABEL001
  173.     :LABEL010
  174.  
  175. ;------------------------------------------------------------------------------
  176. ;
  177. ; Usage report (before postprocessing)
  178. ;
  179. ; ■ Statements used :
  180. ;
  181. ;    33      Goto 
  182. ;    25      Let 
  183. ;    11      Print 
  184. ;    25      PrintLn 
  185. ;    18      If 
  186. ;    1       DispFile 
  187. ;    1       GetUser
  188. ;    2       PutUser
  189. ;    2       AdjTime 
  190. ;    7       Log 
  191. ;    3       InputStr 
  192. ;    3       Gosub 
  193. ;    1       Tokenize 
  194. ;    2       GetToken 
  195. ;    5       AnsiPos 
  196. ;
  197. ;
  198. ; ■ Functions used :
  199. ;
  200. ;    1       -
  201. ;    42      +
  202. ;    4       -
  203. ;    8       ==
  204. ;    2       <>
  205. ;    7       >
  206. ;    12      !
  207. ;    1       Left()
  208. ;    2       Mask_Num()
  209. ;    1       Mask_AlNum()
  210. ;    2       PPEPath()
  211. ;    4       MinLeft()
  212. ;    1       Exist()
  213. ;
  214. ;------------------------------------------------------------------------------
  215. ;
  216. ; Analysis flags : WA
  217. ;
  218. ; W - Write user ■ 5
  219. ;     Program writes a user record. Although this may be normal for a
  220. ;     User Editor, it may also be a way to modify an account level.
  221. ;     ■ Search for : PUTUSER
  222. ;
  223. ; A - Adjust online time remaining ■ 5
  224. ;     Program modify the amount of online time remaining, this may
  225. ;     be a way to bypass time limits
  226. ;     ■ Search for : ADJTIME
  227. ;
  228. ;------------------------------------------------------------------------------
  229. ;
  230. ; Postprocessing report
  231. ;
  232. ;    0       For/Next
  233. ;    1       While/EndWhile
  234. ;    11      If/Then or If/Then/Else
  235. ;    0       Select Case
  236. ;
  237. ;------------------------------------------------------------------------------
  238. ;                 AEGiS Corp - Break the routines, code against the machines!
  239. ;------------------------------------------------------------------------------
  240.